/**
 * 转换格式的函数
 */
export default {
    methods: {
        /**
         * 将字符串转换为对象数组。
         *
         * 此函数接受一个特定格式的字符串作为输入，该字符串由分号分隔的记录组成，
         * 每个记录又由逗号分隔的键值对组成。函数将这个字符串解析为一个对象数组，
         * 每个对象代表一个记录，对象的属性由键值对定义。
         *
         * @param {string} str - 特定格式的字符串，用于转换为对象数组。
         * @returns {Array} 返回一个对象数组，每个对象代表输入字符串中的一个记录。
         */
        stringToObjArr(str) {
            if (!str) return [];
            return str
                .split(';')
                .filter(Boolean)
                .map((record) => {
                    return record.split(',').reduce((obj, field) => {
                        const [key, value] = field.split(':');
                        obj[key] = value;
                        return obj;
                    }, {});
                });
        },

        /**
         * 将对象数组转换为字符串格式。
         *
         * 此函数接受一个对象数组作为输入，将每个对象的键值对转换为字符串格式，
         * 并以分号分隔不同的对象，每个对象的键值对之间用逗号分隔。如果输入为空或未定义，
         * 则函数返回空字符串。
         *
         * @param {Object[]} objArr - 待转换的对象数组。
         * @returns {string} 转换后的字符串。
         */
        objArrToString(objArr) {
            if (!objArr) return '';
            return objArr
                .map((obj) => {
                    return Object.entries(obj)
                        .map(([key, value]) => {
                            return `${key}:${value}`;
                        })
                        .join(',');
                })
                .join(';');
        }
    }
};
